package com.imooc.oa.service;

import com.imooc.oa.dao.EmployeeDao;
import com.imooc.oa.entity.Employee;
import com.imooc.oa.utils.MybatisUtils;
//xml配置下实现mapper接口，mybatis会根据mappers目录下的xml文件自动实现接口
public class EmployeeService {
    /**
     * 按编号得到员工对象
     * @param employeeId 员工编号
     * @return 员工对象，null代表员工不存在
     */
    public Employee selectById(Long employeeId)
    {
        return (Employee) MybatisUtils.executeQuery(sqlSession ->
        {
            //参数是要自动实现方法的接口Class对象，根据EmployeeDao对象的类名会自动找到以此类名为命名空间的mapper，
            //再找到id名与接口方法相同的sql语句，此sql语句的parameterType与接口方法参数类型一样，resultType与接口方法返回值类型一样

            EmployeeDao employeeDao=sqlSession.getMapper(EmployeeDao.class);//获得自动实现了接口方法的实现类
            return employeeDao.selectById(employeeId);//返回接口方法的返回值
        });

    }
}
